CodeIgniter একটি লাইটওয়েট এবং শক্তিশালী PHP ফ্রেমওয়ার্ক, যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে দ্রুত এবং সহজ সমাধান প্রদান করে। তবে, একটি প্রোজেক্টের ডেভেলপমেন্ট শেষ হলে, এটি সঠিকভাবে Deployment এবং Maintenance করা খুবই গুরুত্বপূর্ণ। এই টিউটোরিয়ালে আমরা CodeIgniter এর Deployment এবং Maintenance সম্পর্কিত কিছু গুরুত্বপূর্ণ ধাপ আলোচনা করব।
Deployment হল একটি প্রক্রিয়া যেখানে ডেভেলপমেন্ট পরিবেশ থেকে অ্যাপ্লিকেশনকে লাইভ বা প্রোডাকশন পরিবেশে স্থানান্তরিত করা হয়। এটি সঠিকভাবে করলে অ্যাপ্লিকেশনটি ইউজারের জন্য সহজে এবং কার্যকরীভাবে অ্যাক্সেসযোগ্য হবে।
CodeIgniter অ্যাপ্লিকেশন চালানোর জন্য সার্ভারের কিছু নির্দিষ্ট প্রয়োজনীয়তা রয়েছে:
application/config
এবং writable/
ফোল্ডারগুলোর সঠিক পারমিশন রয়েছে। এই ফোল্ডারগুলো রাইটেবল হওয়া উচিত।প্রোডাকশন সার্ভারে কিছু কনফিগারেশন পরিবর্তন করা প্রয়োজন:
Base URL: application/config/config.php
ফাইলে $config['base_url']
সেট করুন:
$config['base_url'] = 'https://www.yourdomain.com';
Database কনফিগারেশন: application/config/database.php
ফাইলে ডাটাবেসের তথ্য আপডেট করুন:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'your_db_user',
'password' => 'your_db_password',
'database' => 'your_db_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
);
.env
কনফিগারেশন ব্যবহার করুন।প্রোডাকশন পরিবেশে error_reporting বন্ধ করতে হবে:
application/config/config.php
ফাইলে:
$config['log_threshold'] = 1; // Error log level
index.php
ফাইলে error reporting নিষ্ক্রিয় করুন:
error_reporting(0); // Disable error reporting in production
public/
ফোল্ডারটি ওয়েব রুট হিসেবে সেট করুন এবং এই ফোল্ডারের বাইরের ফোল্ডারগুলির অ্যাক্সেস সীমিত করুন।.htaccess
ফাইলটি public/
ফোল্ডারে থাকা উচিত:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /your_project/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
.htaccess
ফাইলে:
Options -Indexes
একবার অ্যাপ্লিকেশন প্রোডাকশনে চলে এলে, এর Maintenance একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়। এটি অ্যাপ্লিকেশনের স্থায়িত্ব এবং পারফরম্যান্স নিশ্চিত করে।
application/config
এবং writable/
ফোল্ডার।application/config/config.php
:
$config['sess_expiration'] = 7200; // 2 hours session expiration
CodeIgniter Deployment এবং Maintenance প্রক্রিয়া একটি অ্যাপ্লিকেশনের কার্যকারিতা এবং স্থায়িত্ব নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। সঠিকভাবে ডেপ্লয়মেন্ট এবং রক্ষণাবেক্ষণের মাধ্যমে আপনি একটি দ্রুত, সুরক্ষিত, এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
CodeIgniter অ্যাপ্লিকেশন ডেভেলপ করার পর সেটি একটি লাইভ সার্ভারে ডেপ্লয় করা প্রয়োজন, যাতে ব্যবহারকারীরা অ্যাপ্লিকেশনটি অ্যাক্সেস করতে পারে। CodeIgniter অ্যাপ্লিকেশন ডেপ্লয় করার জন্য কিছু সহজ পদ্ধতি রয়েছে, যার মাধ্যমে আপনি আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশ থেকে সার্ভারে অ্যাপ্লিকেশনটি স্থানান্তর করতে পারেন।
এই গাইডে, আমরা দেখব কীভাবে CodeIgniter অ্যাপ্লিকেশন সার্ভারে ডেপ্লয় করা যায়, পাশাপাশি সার্ভার কনফিগারেশন, ফাইল সিস্টেম, ডাটাবেস কনফিগারেশন ইত্যাদির বিষয়গুলোও আলোচনা করা হবে।
CodeIgniter অ্যাপ্লিকেশন ডেপ্লয় করতে আপনার কাছে একটি ওয়েব সার্ভার (যেমন Apache বা Nginx), PHP, এবং একটি ডাটাবেস সিস্টেম (যেমন MySQL বা PostgreSQL) থাকতে হবে।
আপনি আপনার ফাইলগুলি FTP (File Transfer Protocol) ব্যবহার করে সার্ভারে আপলোড করতে পারেন। ফাইল আপলোডের জন্য FileZilla বা Cyberduck ইত্যাদি FTP ক্লায়েন্ট ব্যবহার করতে পারেন।
public_html
বা www
ডিরেক্টরিতে আপনার CodeIgniter অ্যাপ্লিকেশনের ফোল্ডারটি আপলোড করুন।index.php
ফাইল এবং public
ফোল্ডার সঠিকভাবে লোকেশন করুন।CodeIgniter অ্যাপ্লিকেশনে ডাটাবেস কনফিগার করার জন্য application/config/database.php
ফাইলটি এডিট করুন:
// Example configuration for MySQL database
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost', // সার্ভারের ডাটাবেস হোস্টনেম
'username' => 'your_username', // ডাটাবেস ইউজারনেম
'password' => 'your_password', // ডাটাবেস পাসওয়ার্ড
'database' => 'your_database_name', // ডাটাবেস নাম
'dbdriver' => 'mysqli', // ডাটাবেস ড্রাইভার
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
hostname
: সার্ভারের ডাটাবেস হোস্টনেম (সাধারণত localhost
বা IP অ্যাড্রেস)username
: ডাটাবেস ইউজারনেমpassword
: ডাটাবেস পাসওয়ার্ডdatabase
: আপনার তৈরি করা ডাটাবেসের নাম.htaccess
ফাইল কনফিগার করাআপনার অ্যাপ্লিকেশন থেকে index.php সরিয়ে ফেলার জন্য .htaccess
ফাইল তৈরি করুন এবং নিম্নলিখিত কোড যুক্ত করুন:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Remove index.php
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
index.php
সরিয়ে ফেলবে।application/config/config.php
কনফিগারেশনbase_url
ঠিক করুন, যাতে সার্ভারে অ্যাপ্লিকেশনটি সঠিকভাবে কাজ করে।
$config['base_url'] = 'http://yourdomain.com/your_project';
yourdomain.com
এবং your_project
আপনার প্রকল্পের নাম অনুযায়ী পরিবর্তন করুন।.env
ফাইল কনফিগারেশনCodeIgniter 4 এর .env
ফাইলটি সার্ভারে কনফিগার করতে হবে:
CI_ENVIRONMENT = production
app.baseURL = 'http://yourdomain.com/your_project'
CI_ENVIRONMENT
সেট করুন production
।app.baseURL
আপনার অ্যাপ্লিকেশনের সঠিক URL দিয়ে প্রতিস্থাপন করুন।Session Management এবং Encryption সেটআপ নিশ্চিত করুন। সার্ভারের পরিবেশে সেশন ডেটা এবং সিকিউরিটি সেটিংস সঠিকভাবে কাজ করা উচিত।
application/config/config.php
ফাইলে encryption_key
যোগ করুন:
$config['encryption_key'] = 'your_secret_key';
এটি আপনার সিকিউরিটি বাড়াবে এবং সেশন পরিচালনা নিরাপদ রাখবে।
.htaccess
ফাইল কাজ করছে কিনা তা নিশ্চিত করুন, যাতে index.php
ছাড়া URL কাজ করে।application/logs/
ডিরেক্টরি চেক করুন। CodeIgniter লগ ফাইলগুলোতে ত্রুটির বার্তা থাকবে, যা সমস্যার সমাধান করতে সাহায্য করবে।CodeIgniter অ্যাপ্লিকেশন সার্ভারে ডেপ্লয় করার জন্য আপনাকে সার্ভার প্রস্তুত, ডাটাবেস কনফিগারেশন, ফাইল সিস্টেম কনফিগারেশন, এবং পরিবেশের কনফিগারেশন ঠিকভাবে করতে হবে। .htaccess
কনফিগারেশন, সিকিউরিটি সেটিংস এবং ডাটাবেস কনফিগারেশন নিশ্চিত করার পর, অ্যাপ্লিকেশনটি নিরাপদ এবং কার্যকরভাবে লাইভ সার্ভারে রান করবে।
CodeIgniter-এ অ্যাপ্লিকেশনটি প্রোডাকশন এনভায়রনমেন্টে হোস্ট করার আগে কিছু প্রস্তুতি নেওয়া জরুরি। এই প্রস্তুতির মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটি নিরাপদ, দ্রুত, এবং কার্যকরীভাবে চালাতে পারবেন। এখানে আমরা বিভিন্ন গুরুত্বপূর্ণ প্রস্তুতির ধাপ আলোচনা করবো যা আপনাকে CodeIgniter অ্যাপ্লিকেশন প্রোডাকশন পরিবেশে সফলভাবে চলতে সাহায্য করবে।
CodeIgniter অ্যাপ্লিকেশনটি ডেভেলপমেন্ট, স্টেজিং এবং প্রোডাকশন তিনটি পরিবেশের জন্য কনফিগার করা যেতে পারে। প্রতিটি পরিবেশের জন্য আলাদা কনফিগারেশন সেট করা গুরুত্বপূর্ণ।
.env
ফাইল ব্যবহার করাapp/Config/
ডিরেক্টরিতে .env
ফাইলটি রিনেম করুন (যদি না থাকে)।.env
ফাইলটি ওপেন করুন এবং CI_ENVIRONMENT
পরিবর্তন করুন:
CI_ENVIRONMENT = production
এই পরিবর্তনটি অ্যাপ্লিকেশনকে প্রোডাকশন পরিবেশে চালু করবে এবং প্রোডাকশন সংক্রান্ত সমস্ত কনফিগারেশন প্রয়োগ হবে।
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনটি নিরাপদ এবং দক্ষভাবে চলতে হলে ডিবাগ মোড বন্ধ করা উচিত এবং এরর রিপোর্টিং সীমিত করা উচিত।
app/Config/Boot/development.php
ফাইলে Debugging বন্ধ করুনপ্রোডাকশন পরিবেশে debugging বন্ধ করতে, app/Config/Boot/development.php
ফাইলটি ওপেন করুন এবং নিম্নলিখিত কোডটি সেট করুন:
error_reporting(0); // সব ধরনের ত্রুটি বন্ধ
ini_set('display_errors', '0'); // ত্রুটি স্ক্রীনে না দেখানো
app/Config/App.php
ফাইলের debug কনফিগারেশন সেট করুনpublic $debug = false; // প্রোডাকশন পরিবেশে ডিবাগ বন্ধ করুন
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনটির সিকিউরিটি বাড়ানো অত্যন্ত গুরুত্বপূর্ণ। নিচে কিছু সাধারণ সিকিউরিটি কনফিগারেশন দেওয়া হলো।
প্রোডাকশন পরিবেশে CSRF Protection নিশ্চিত করা জরুরি। CodeIgniter-এ CSRF protection সরবরাহ করা হয়।
app/Config/Security.php
ফাইল ওপেন করুন এবং CSRF সক্রিয় করুন:
public $csrfProtection = true;
অ্যাপ্লিকেশনটি HTTPS-এ চলমান রাখতে নিশ্চিত করুন যে সমস্ত রিকোয়েস্ট HTTPS প্রোটোকল ব্যবহার করছে। app/Config/App.php
ফাইলে বেস URL সেট করতে পারেন:
public $baseURL = 'https://yourdomain.com/';
XSS (Cross-Site Scripting) আক্রমণ থেকে সুরক্ষা পেতে, HTTP হেডারে সিকিউরিটি ফিচার যোগ করা উচিত:
$response = \Config\Services::response();
$response->setHeader('X-XSS-Protection', '1; mode=block');
$response->setHeader('X-Content-Type-Options', 'nosniff');
$response->setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
$response->setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self'");
প্রোডাকশন পরিবেশে অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে ক্যাশিং ব্যবহার করা উচিত।
CodeIgniter ডাটাবেস ক্যাশিং সমর্থন করে। যদি আপনার অ্যাপ্লিকেশনটি অনেক ডাটাবেস রিকোয়েস্ট করে, তবে ক্যাশিং সক্রিয় করা উচিত।
Example:
$db = \Config\Database::connect();
$query = $db->table('products')->cache(300)->get(); // ক্যাশে ৫ মিনিট
CodeIgniter ভিউ ক্যাশিংও সমর্থন করে। যদি ভিউটি পরিবর্তন না হয়, তবে সেটি ক্যাশে রাখতে পারেন:
echo view('home', [], true); // ভিউ ক্যাশে রাখবে
Error logs এবং activity logs মনিটরিং প্রোডাকশন পরিবেশে খুবই গুরুত্বপূর্ণ।
app/Config/Logger.php
ফাইলে লগের স্তর সেট করুন:
public $logThreshold = 4; // শুধুমাত্র Error, Warning, Info, and Debug log হবে।
লগ ফাইলগুলি writable/logs
ফোল্ডারে সংরক্ষিত হয়। এটি রাইটেবল থাকতে হবে:
chmod -R 0777 writable/logs
প্রোডাকশন পরিবেশে ডাটাবেস সংযোগ নিশ্চিত করুন এবং ডাটাবেসের নিরাপত্তা কনফিগারেশন চেক করুন।
app/Config/Database.php
ফাইলে প্রোডাকশন ডাটাবেস কনফিগারেশনpublic $default = [
'DSN' => '',
'hostname' => 'your_production_host',
'username' => 'your_production_db_user',
'password' => 'your_production_db_password',
'database' => 'your_production_db_name',
'DBDriver' => 'MySQLi', // আপনার ডাটাবেস ড্রাইভার
'DBPrefix' => '',
'pConnect' => false,
'cacheOn' => false,
'charset' => 'utf8',
'DBDebug' => false, // প্রোডাকশন পরিবেশে ডিবাগ বন্ধ
];
CodeIgniter অ্যাপ্লিকেশনটির জন্য কিছু ফোল্ডার যেমন writable/
এবং cache/
ফোল্ডার রাইটেবল হতে হবে।
Linux / MacOS এ:
chmod -R 0777 writable/
chmod -R 0777 writable/cache/
প্রোডাকশন পরিবেশে কোডটি স্থির রাখতে, আপনার cache এবং debug logs পরিষ্কার রাখা উচিত। CodeIgniter-এর ক্যাশ পরিষ্কার করতে:
php spark cache:clear
CodeIgniter অ্যাপ্লিকেশনটি প্রোডাকশন পরিবেশে চলানোর জন্য উপরের ধাপগুলো অনুসরণ করলে তা নিরাপদ, দ্রুত, এবং কার্যকরী হবে। এই প্রস্তুতিগুলি আপনার অ্যাপ্লিকেশনকে নিরাপদ ও স্কেলেবল করতে সাহায্য করবে এবং প্রোডাকশন সার্ভারে ভালো পারফরম্যান্স নিশ্চিত করবে।
CodeIgniter অ্যাপ্লিকেশন তৈরির পর, এর Maintenance এবং Updates একটি অত্যন্ত গুরুত্বপূর্ণ অংশ হয়ে দাঁড়ায়। অ্যাপ্লিকেশনকে নিরাপদ এবং কার্যকরী রাখতে নিয়মিত রক্ষণাবেক্ষণ এবং আপডেট প্রয়োজন। এখানে কিছু প্রক্রিয়া এবং পদক্ষেপ দেয়া হলো, যা CodeIgniter অ্যাপ্লিকেশনের Maintenance এবং Updates পরিচালনা করতে সাহায্য করবে।
CodeIgniter এর মধ্যে বিল্ট-ইন Logging সিস্টেম রয়েছে, যা অ্যাপ্লিকেশন লেভেল ইরর এবং এক্সপেকশন লগ করার জন্য ব্যবহৃত হয়। এই লগগুলো রক্ষণাবেক্ষণ করা অ্যাপ্লিকেশনের কার্যকারিতা এবং নিরাপত্তা বজায় রাখতে সাহায্য করে।
app/Config/Logger.php
ফাইলে লগের স্তর নির্ধারণ করতে পারেন। আপনি চাইলে debug, info, warning, error স্তর সেট করতে পারেন।public $threshold = 4; // Error level for logging
writable/logs
ডিরেক্টরিতে সংরক্ষিত থাকে। নিয়মিত লগ ফাইল ম্যানেজ করা এবং পুরনো লগ ফাইল মুছে ফেলা গুরুত্বপূর্ণ।CodeIgniter অ্যাপ্লিকেশনে ব্যবহৃত ডাটাবেসে রক্ষণাবেক্ষণ যেমন:
ডাটাবেসের সঠিক কাঠামো এবং পারফরম্যান্স সুরক্ষিত রাখার জন্য এই কাজগুলো করা প্রয়োজন।
CodeIgniter অ্যাপ্লিকেশনটি যখন পাবলিক সার্ভারে চলে, তখন writable ডিরেক্টরি এবং অন্যান্য ফোল্ডারের পারমিশন সঠিকভাবে সেট করা প্রয়োজন। সাধারণত, write, read, এবং execute পারমিশন প্রদান করা হয়।
chmod -R 755 writable/
CodeIgniter ক্যাশিং সমর্থন করে, যার মাধ্যমে পেজ লোড টাইম উন্নত করা যায়। ক্যাশিং নিয়মিতভাবে ক্লিয়ার এবং রি-জেনারেট করা উচিত।
ব্যবহারকারীর ইনপুট এবং সেশন সুরক্ষা নিশ্চিত করার জন্য CSRF, XSS Filtering, এবং SQL Injection প্রতিরোধমূলক ব্যবস্থা সঠিকভাবে সক্রিয় থাকতে হবে।
CodeIgniter এর নতুন সংস্করণে আপডেট করা অ্যাপ্লিকেশনের নিরাপত্তা এবং কার্যক্ষমতা বাড়াতে সাহায্য করে। তবে, কোডের বর্তমান সংস্করণে কোন পরিবর্তন আসলে তা সঠিকভাবে ইমপ্লিমেন্ট করা গুরুত্বপূর্ণ।
composer update codeigniter4/framework
app/
, writable/
, এবং public/
ফোল্ডারগুলি ব্যাকআপ নিন।যদি আপনি CodeIgniter-এ তৃতীয় পক্ষের প্যাকেজ ব্যবহার করে থাকেন, তবে Composer এর মাধ্যমে সেগুলোর আপডেটও করতে হবে।
composer update
আপডেটের সময় ডাটাবেসে নতুন টেবিল, কলাম, বা ইন্ডেক্স তৈরি করতে হতে পারে। এই পরিবর্তনগুলি ম্যানুয়ালি বা Migrations ব্যবহার করে করতে পারেন।
php spark migrate
CodeIgniter এর নতুন সংস্করণে কখনও কখনও কনফিগারেশন ফাইল পরিবর্তিত হয়। app/Config
ফোল্ডারের ফাইলগুলোকে পুরানো ফাইলের সাথে তুলনা করে কাস্টমাইজ করুন।
CodeIgniter-এ কাস্টম লাইব্রেরি এবং হেলপার ফাইলের রক্ষণাবেক্ষণ নিয়মিত করা উচিত। নতুন বৈশিষ্ট্য যোগ করার সময় পুরনো কোড ঠিকমতো কাজ করছে কিনা পরীক্ষা করতে হবে।
যেকোনো তৃতীয় পক্ষের লাইব্রেরি বা প্যাকেজ ব্যবহারের জন্য composer.json
ফাইল আপডেট রাখতে হবে।
নতুন ফিচার যুক্ত করার পর এবং পুরানো ফিচার আপডেট করার পর অ্যাপ্লিকেশনের প্রতিটি অংশ সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করা উচিত। CodeIgniter-এ Unit Testing এবং Functional Testing এর মাধ্যমে সঠিকভাবে টেস্ট করা সম্ভব।
CodeIgniter ও অন্যান্য প্যাকেজগুলোর জন্য সিকিউরিটি প্যাচ এবং আপডেট নিয়মিতভাবে মনিটর করতে হবে। আপনি composer
এর মাধ্যমে যে প্যাকেজগুলো ইনস্টল করেছেন, সেগুলোর সিকিউরিটি প্যাচ চেক করতে পারেন।
ডেভেলপমেন্ট এবং প্রোডাকশনে SSL (HTTPS) সুরক্ষা সক্ষম করুন যাতে আপনার অ্যাপ্লিকেশন নিরাপদ থাকে।
CodeIgniter অ্যাপ্লিকেশন এর Maintenance এবং Updates একটি অ্যাপ্লিকেশনের দীর্ঘস্থায়ী কার্যকারিতা এবং নিরাপত্তা নিশ্চিত করার জন্য অপরিহার্য। নিয়মিত ডাটাবেস ব্যাকআপ, লগ রক্ষণাবেক্ষণ, ফাইল পারমিশন সঠিক করা, টেমপ্লেট এবং কোড অপটিমাইজেশন এবং সিকিউরিটি আপডেট সঠিকভাবে পরিচালনা করতে হবে। CodeIgniter এর Composer এবং Migrations টুল ব্যবহার করে অ্যাপ্লিকেশনটি সহজে আপডেট করা যায় এবং উন্নত করা সম্ভব।
Version Control এবং Continuous Integration (CI) সিস্টেমগুলো সফটওয়্যার ডেভেলপমেন্টের অপরিহার্য অংশ। এগুলো কোডের পরিবর্তন ট্র্যাক করতে সাহায্য করে এবং ডেভেলপমেন্ট প্রক্রিয়ার মধ্যে ত্রুটি হ্রাস করতে সহায়ক। Git একটি জনপ্রিয় Version Control System এবং CI সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়াকে আরও মসৃণ এবং দক্ষ করে তোলে।
এখানে, আমরা Git এবং Continuous Integration এর মাধ্যমে CodeIgniter প্রকল্পের কার্যক্রমকে কীভাবে সহজতর এবং আরও কার্যকরী করা যায়, তা আলোচনা করব।
Git একটি distributed version control system (VCS), যা সফটওয়্যার ডেভেলপমেন্টে কোডের ইতিহাস ট্র্যাক করার জন্য ব্যবহৃত হয়। এটি ডেভেলপারদের নিজেদের কাজ এবং দলের কাজ একসাথে পরিচালনা করতে সাহায্য করে।
brew install git
কমান্ড রান করুন।sudo apt-get install git
(Ubuntu/Debian) অথবা sudo yum install git
(CentOS) কমান্ড ব্যবহার করতে পারেন।প্রথমে একটি Git repository তৈরি করতে হবে। CodeIgniter প্রজেক্ট ডিরেক্টরিতে গিয়ে কমান্ড রান করুন:
git init
এটি আপনার প্রজেক্টের ভিতরে একটি .git
ফোল্ডার তৈরি করবে এবং এই ডিরেক্টরি এখন Git দ্বারা ট্র্যাক করা হবে।
git add .
এটি সমস্ত ফাইল এবং পরিবর্তন Git repository-তে যোগ করবে।
git commit -m "Initial commit"
এটি আপনার প্রথম কমিট করবে এবং "Initial commit" বার্তা দেবে।
GitHub, GitLab, বা Bitbucket এ একটি repository তৈরি করে, আপনার লোকাল Git repository-কে remote repository-এর সাথে যুক্ত করুন:
git remote add origin https://github.com/your-username/your-repo.git
git push -u origin master
Git Workflow হল একটি নির্দিষ্ট পদ্ধতি যার মাধ্যমে ডেভেলপাররা তাদের কোডের পরিবর্তন পরিচালনা করেন। সাধারণত এই দুটি ভিন্ন ধরনের ব্রাঞ্চ ব্যবহৃত হয়:
git checkout -b feature/new-feature
এটি একটি নতুন ব্রাঞ্চ তৈরি করবে এবং সেখানে পরিবর্তন করতে শুরু করবে।
git checkout master # master ব্রাঞ্চে চলে যান
git merge feature/new-feature # feature ব্রাঞ্চ মার্জ করুন
git push origin master # master ব্রাঞ্চে পুশ করুন
Continuous Integration (CI) হল একটি উন্নত সফটওয়্যার ডেভেলপমেন্ট পদ্ধতি যেখানে ডেভেলপাররা ছোট ছোট কোড চেঞ্জ করে একটি শেয়ার করা রেপোজিটরিতে নিয়মিত পুশ করেন। প্রতিটি পুশের পরে Automated Build, Test, এবং Deployment চলে, যা ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং আরও নির্ভরযোগ্য করে তোলে।
কিছু জনপ্রিয় CI tools ব্যবহার করে আপনি CodeIgniter প্রজেক্টের CI প্রক্রিয়া সেটআপ করতে পারেন:
.github/workflows
ডিরেক্টরিতে একটি YAML ফাইল তৈরি করতে হবে, উদাহরণস্বরূপ ci.yml
।name: CodeIgniter CI Workflow
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y unzip
curl -sS https://getcomposer.org/installer | php
php composer.phar install
- name: Run Tests
run: |
php vendor/bin/phpunit --configuration phpunit.xml.dist
এই workflow ফাইলটি GitHub repository-তে প্রতিটি push বা pull request এর জন্য PHP-এ CodeIgniter অ্যাপ্লিকেশনটি বিল্ড করবে এবং PHPUnit ব্যবহার করে স্বয়ংক্রিয় টেস্ট চালাবে।
CodeIgniter প্রকল্পে Continuous Integration সিস্টেমে কনফিগারেশনের জন্য আপনার Unit Tests তৈরি করতে হবে, যাতে CI pipeline প্রক্রিয়া চলাকালীন সেগুলি অটোমেটিকভাবে রান হয়।
composer require --dev phpunit/phpunit
কমান্ড ব্যবহার করে PHPUnit ইনস্টল করুন।app/Tests
ফোল্ডারে টেস্ট ফাইল তৈরি করুন এবং সেগুলিতে আপনার ফাংশনালিটি টেস্ট করুন।use CodeIgniter\Test\CIUnitTestCase;
class ProductTest extends CIUnitTestCase
{
public function testProduct()
{
$product = new \App\Models\ProductModel();
$result = $product->find(1);
$this->assertNotEmpty($result);
}
}
এই প্রক্রিয়াগুলি আপনার কোডের মান এবং ডেভেলপমেন্ট সাইকেলকে আরও দ্রুত এবং নির্ভরযোগ্য করে তোলে।
Read more